#ifndef KINEMATIC_OBJECT_MANAGER_H
#define KINEMATIC_OBJECT_MANAGER_H

#include "Singleton.h"
#include <map>

namespace Engine
{
	class KinematicObject;
	typedef std::map <unsigned int, KinematicObject*> KinematicObjectMap;

	class KinematicObjectManager : public NonCopyable
	{
		private:
			friend class Singleton <KinematicObjectManager>;
			KinematicObjectManager(){}

			typedef std::map <unsigned int, KinematicObject*> KinematicObjectMap;
			KinematicObjectMap m_objects;

		public:
			void RegisterKinematicObject(KinematicObject* obj);
			void UnregisterKinematicObject(unsigned int id);
			KinematicObjectMap* GetKinematicObjects();

	};

	typedef Singleton <KinematicObjectManager> TheKinematicObjectManager;
}

#endif